Soru & Cevap

Pull to refresh listview

17.05.2014 - 03:06

Arkadaşlar öncelikle merhaba , bir kaç gündür twitter , facebook vs mobil uygulamalarda görüldüğü gibi sayfayı aşağıya çekilince listview'imizin yenilenmesiyle ilgili araştırma yapıyorum. Gerekli kodlamaları araştırdım fakat sorun şu ki listview'imi rss reader ile http://www.programlamadefteri.com/mobil/android-programlama-ders-13xml-rss-reader-yapimi-ve-asynctask-ornegi-509 linkindeki kodlar ile gerekli url'den çekiyorum fakat , pull to refresh olayı için tekrar asynctask işlemi yapmam gerekiyor ve bu kodları birleştirme ile ilgili sıkıntı yaşıyorum.Pull to refresh için gerekli kütüphanemi de ekledim.

https://github.com/johannilsson/android-pulltorefresh 'teki kodlardan faydalanıyorum . Bu birleştirmeyi nasıl yapabilirim , yada listview yenileme ile ilgili bir şey okumuştum motionEvent.ACTION_DOWN bu şekilde kodlarımı nasıl düzenleyebilirim. Fikirlerinizi ve yardımlarınızı bekliyorum , şimdiden teşekkür ederim.

25 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-19298-1459404577.jpg
alper_beyler
19.05.2014 - 04:16

Merhabalar, aşağıdaki kod benim ERP uygulaması için yazdığım kod parçalarından oluşmakta gridview kullanarak ekranda aşağıya doğru kaydıkça yeni verileri server üzerinden çekip tekrardan ekrana basan ,parmağınla kaydırdığında belli sayıda veriyi çekip diğer parta geçtiğinde Loading... Please wait.. yazısı yazıp veriler gelincede ekrana basmayı sağlıyor kodu incelediğin zaman görüceksin.. seninde belirtiğin gibi AsyncTask ile gerçekleşiyor bu olay ve bende onu kullandım zaten.. sende bunu listview için yapabilirsin ben gridview oluşturarak yapdım.. Bunun için ayrıca adapter da gerekiyor ki kendi adapterımı kendim oluşturdum kod da CustomGridViewContactsListing olarak göreceksin.. sende böyle birşey oluşturabilirsin, senin yapmak istediğin yapıya bağlı.. takıldığın yerler olursa sorabilirsin kolay gelsin..

[code]

private class Method extends AsyncTask<Activity, Void, Void> {
        private ProgressDialog dialog;

        @Override
        protected void onCancelled(Void result) {
            // TODO Auto-generated method stub
            super.onCancelled(result);
            dialog.dismiss();
            Toast toast = Toast.makeText(getActivity(),
                    "Error connecting to Server", Toast.LENGTH_LONG);
            toast.setGravity(Gravity.TOP, 25, 400);
            toast.show();
        }

        @Override
        protected void onPostExecute(Void result) {
            // TODO Auto-generated method stub
            super.onPostExecute(result);
            dialog.dismiss();
            if(((ArrayAdapter<ContactsInfo>) ((GridView) llLayout.findViewById(R.id.gridview_contacts)).getAdapter()) != null && adapter != null)
            {
                ((ArrayAdapter<ContactsInfo>) ((GridView) llLayout
                        .findViewById(R.id.gridview_contacts)).getAdapter())
                        .notifyDataSetChanged();

                            });
                    builder.show();

                }
            }
            else
                Gridview_contact.setAdapter(adapter);

        }

        @Override
        protected void onPreExecute() {
            super.onPreExecute();

            dialog = new ProgressDialog(getActivity());
            dialog.setMessage("Loading... Please wait...");
            dialog.show();
        }

        @Override
        protected Void doInBackground(Activity... params) {
            // TODO Auto-generated method stub
            
            list = Return_List(start, search_text.getText().toString());
            if (list==null || list.isEmpty())
                adapter = null;
            else{
                adapter = new CustomGridViewContactsListing(getActivity(),
                        R.layout.gridforcontactlist, list);    
            }
            return null;
        }
    }

[/code]

Ecem Okan
20.05.2014 - 05:00
Cevabınız için teşekkür ederim Alper bey
Ecem Okan
20.05.2014 - 05:00
Cevabınız için teşekkür ederim Alper bey